/**
 *  EmitterContext.java : IceBird project
 *  15:01:03 
 */
package icebird.compiler.x86.old;

/**
 * @author Sergey Shulepoff[Knott]
 */
public final class EmitterContext {

	private X86Assembler asm;
	
	/** GPR Register Pool */
	private final X86RegisterPool gprPool;
	
	/** Virtual Stack */
	private final VirtualStack vstack;
	
	/** Item factory */
	private final ItemFactory itemFactory;

	/**
	 * @param asm
	 * @param gprPool
	 * @param vstack
	 * @param itemFactory
	 */
	public EmitterContext(X86Assembler asm, X86RegisterPool gprPool, 
						  VirtualStack vstack, ItemFactory itemFactory) {
		this.asm = asm;
		this.gprPool = gprPool;
		this.vstack = vstack;
		this.itemFactory = itemFactory;
	}

	/**
	 * @return the asm
	 */
	public final X86Assembler getAsm() {
		return asm;
	}

	/**
	 * @return the gprPool
	 */
	public final X86RegisterPool getGPRPool() {
		return gprPool;
	}

	/**
	 * @return the itemFactory
	 */
	public final ItemFactory getItemFactory() {
		return itemFactory;
	}

	/**
	 * @return the vstack
	 */
	public final VirtualStack getVStack() {
		return vstack;
	}
}
